Open refine ciencias sociales

OpenRefine para Datos en Ciencias Sociales

Este es una adaptación y traducción del tutorial de Data Carpentry: OpenRefine for Social Science Data.
La lección originarl y esta versión está bajo la licencia CC By 4.0

Una parte del flujo de trabajo con los datos es prepararlos para el análisis. Parte de esto implica la limpieza de datos. Es decir, identificar los errores en los datos corregirlos o darles un formato consistente. Este paso, necesario para la reproductivilidad de la metodología, debe tomarse con el mismo cuidado que el análisis.

OpenRefine (anteriormente Google Refine) es una poderosa herramienta gratuita y de código abierto para trabajar con datos desordenados: limpiarlos y transformarlos de un formato a otro.

Esta lección le enseñará a usar OpenRefine para limpiar y formatear datos de manera efectiva y realizar un seguimiento automático de cualquier cambio que realice. Mucha gente comenta que esta herramienta les ahorra literalmente meses de trabajo tratando de hacer estas ediciones a mano.

Para empezar

Instala OpenRefine en la computadora.

Descarga los archivos para trabajar.

Contenidos

Introducción

Trabajar con OpenRefine

Filtrado y clasificación con OpenRefine

Examinar números en OpenRefine

Uso de Scripts

Exportar y guardar datos dede OpenRefine

Otros Recursos

Introducción

Enseñanza: 10 min
Ejercicios: 0 min
Preguntas

¿Para qué sirve OpenRefine?

Objetivos

Motivaciones


Características

Código abierto ( fuente en GitHub ).

Una gran comunidad en crecimiento, desde principiantes hasta expertos.

Funciona con conjuntos de datos de gran tamaño (100.000 filas). Puede ajustar la asignación de memoria para acomodar conjuntos de datos más grandes.

OpenRefine siempre mantiene sus datos privados en su propia computadora hasta que elija compartirlos. Funciona ejecutando un pequeño servidor en su computadora y usando su navegador web para interactuar con él, pero sus datos privados nunca salen de su computadora a menos que así lo desee.


Antes de empezar

Nota: este es un programa Java que se ejecuta en su máquina (no en la nube). Se ejecuta dentro de su navegador, pero no se necesita conexión a Internet.

Siga las instrucciones de configuración para instalar OpenRefine.

Si después de la instalación y ejecución de OpenRefine, no se abre automáticamente, dirija su navegador a http://127.0.0.1:3333/ o http://localhost:3333 para iniciar el programa.


Obtener ayuda para OpenRefine

Puede encontrar mucho más sobre OpenRefine en http://openrefine.org y ver algunos excelentes videos introductorios. Estos videos y otros en OpenRefine también se pueden encontrar en YouTube buscando en ‘OpenRefine’. Hay un grupo de Google que puede responder muchas preguntas y problemas de principiantes. También se puede encontrar información en StackOverflow , donde puede encontrar mucha ayuda. Al igual que con otros programas de este tipo, las bibliotecas de OpenRefine también están disponibles, donde puede encontrar un script que necesite y copiarlo en su instancia de OpenRefine para ejecutarlo en su conjunto de datos.

Puntos clave

OpenRefine es una herramienta potente, gratuita y de código abierto que se puede utilizar para la limpieza de datos.

OpenRefine rastreará automáticamente cualquier paso, lo que le permitirá retroceder según sea necesario y brindará un registro de todo el trabajo realizado.

Trabajando con OpenRefine

Enseñanza: 15 min
Ejercicios: 20 min

Preguntas

Objetivos

Cree un nuevo proyecto OpenRefine a partir de un archivo CSV.

Comprenda los posibles problemas con los encabezados de los archivos.

Use facetas para resumir datos de una columna.

Utilice la agrupación para detectar posibles errores de escritura.

Comprenda que existen diferentes algoritmos de agrupamiento que pueden dar resultados diferentes.

Utilice menús desplegables para eliminar los espacios en blanco de las celdas.

Manipule los datos siguiendo los pasos anteriores con deshacer/rehacer.

Creación de un nuevo proyecto OpenRefine

En Windows, puede iniciar el programa OpenRefine haciendo doble clic en el archivo openrefine.exe. Los servicios de Java se iniciarán automáticamente en su máquina y OpenRefine se abrirá en su navegador. En una Mac, OpenRefine se puede iniciar desde la carpeta Aplicaciones. Si está utilizando Linux, deberá navegar a su directorio OpenRefine en la línea de comandos y ejecutar ./refine.

OpenRefine puede importar una variedad de formatos y extensiones de archivos, incluidos archivos separados por tabulaciones (tsv), separados por comas (csv), Excel ( xls, xlsx), JSON, XML, RDF como XML y hojas de cálculo de Google. Consulte la página Crear un proyecto mediante la importación de datos de OpenRefine para obtener más información.

En este primer paso, buscaremos en nuestra computadora el archivo de datos de muestra para esta lección. En este caso, utilizaremos datos obtenidos de entrevistas a agricultores en dos países del este de África subsahariana (Mozambique y Tanzania). Las instrucciones para descargar los datos están disponibles aquí.

  1. Una vez que se inicia OpenRefine en su navegador, el margen izquierdo tiene opciones para Create Project, Open Projecto Import Project. Aquí vamos a crear un nuevo proyecto:

  2. Haga clic Create Project y seleccione Get data from This Computer. Haga clic Choose Files y seleccione el archivo SAFI_openrefine.csv que descargó. Haga clic Open o doble clic en el nombre del archivo.

  3. Haga clic Next debajo del botón de exploración para cargar los datos en OpenRefine.

  4. OpenRefine le brinda una vista previa, una oportunidad de mostrarle que entendió el archivo. Si, por ejemplo, su archivo estaba realmente delimitado por tabuladores, la vista previa podría parecer extraña. A continuación, elegiría el separador correcto en el cuadro que se muestra y haría clic en Update Preview(centro a la derecha). Si este es el archivo incorrecto, haga clic en inicio (arriba a la izquierda). También hay opciones para indicar si el conjunto de datos tiene encabezados de columna incluidos y si OpenRefine debe omitir una cantidad de filas antes de leer los datos.

En cáracter encoding elija UTF8 y verifique que la opción de quitar espacios en blanco esté seleccionada.

  1. Si todo se ve bien, haga clic Create Project>>(arriba a la derecha).

Tenga en cuenta que en el paso 1, puede cargar datos en un formulario estándar desde una dirección web seleccionando Get data from Web Addresses (URLs). Sin embargo, esto no funcionará para todas las URL

Uso de facetas

Exploración de datos mediante la aplicación de múltiples filtros

Las facetas son una de las características más útiles de OpenRefine y pueden ayudar tanto a obtener una descripción general de los datos en un proyecto como a brindarle más coherencia.

OpenRefine admite la navegación por facetas como mecanismo para
ver una imagen grande de sus datos, y filtrando solo el subconjunto de filas que desea cambiar de forma masiva.

Una ‘Faceta’ agrupa todos los valores similares que aparecen en una columna y luego le permite filtrar los datos por estos valores y editar valores en muchos registros al mismo tiempo.

Un tipo de faceta se denomina ‘faceta de texto’. Esto agrupa todos los valores de texto idénticos en una columna y enumera cada valor con la cantidad de registros en los que aparece. La información de la faceta siempre aparece en el panel de la izquierda en la interfaz de OpenRefine.

Aquí usaremos facetas para buscar posibles errores en la entrada de datos en la columna village.

  1. Desplácese hasta la villagecolumna.

  2. Haga clic en la flecha hacia abajo y elija Facet> Text facet.

  3. En el panel izquierdo, ahora verá un cuadro que contiene cada valor único en la columna village junto con un número que representa cuántas veces aparece ese valor en la columna.

4.Intente ordenar esta faceta por nombre y por recuento. ¿Notas algún problema con los datos? ¿Qué son?

  1. Pase el ratón sobre uno de los nombres de lalista. Deberías ver que tienes una función edit disponible.

  2. Puede usar esto para corregir un error de inmediato, y OpenRefine le preguntará si desea hacer la misma corrección para cada valor que encuentre como ese. Pero OpenRefine ofrece formas aún mejores de encontrar y corregir estos errores, que usaremos en su lugar. Aprenderemos sobre esto cuando hablemos de agrupamiento.

Soluciones

Ejercicios

  1. Usando facetas, averigüe cuántos valores diferentes de interview_date hay en los resultados de la encuesta.

  2. ¿La columna tiene el formato Texto o Fecha?

  3. Use facetas para producir una visualización de línea de tiempo para archivos interview_date. Deberá utilizar Edit cells Common transforms>To date```para convertir esta columna en fechas.

  4. ¿Durante qué período se recopilaron la mayoría de las entrevistas?

Soluciones

  1. Para la columna interview_datedo Facet> Text facet. Aparecerá un cuadro en el panel izquierdo que muestra que hay 19 entradas únicas en esta columna.

  2. De forma predeterminada, la columna interview_datetiene el formato de Texto.

  3. Puede cambiar el formato haciendo Edit cells> Common transforms> To date. Observe que los valores de la columna se vuelven verdes. Hacer Facet> Timeline facet crea un cuadro en el panel izquierdo que muestra un histograma del número de entradas para cada fecha.

  4. La mayor parte de los datos se recopilaron en noviembre de 2016.

Manual de Facetas

Manual de OpenRefine: facetas

Además de ‘Facetas de texto’, Refine también admite una variedad de otros tipos de facetas. Éstos incluyen:

Las facetas numéricas y de diagrama de dispersión muestran gráficos en lugar de listas de valores. El gráfico de facetas numéricas incluye controles de “arrastrar y soltar” que puede usar para establecer un rango inicial y final para filtrar los datos que se muestran. Estas facetas se exploran más en Examinando números en OpenRefine

Las facetas personalizadas son una gama de diferentes tipos de facetas. Algunas de las facetas personalizadas predeterminadas son:

Uso de agrupamiento (clusters) para detectar posibles errores de tipeo

En OpenRefine, agrupar significa “encontrar grupos de diferentes valores que podrían ser representaciones alternativas de lo mismo”. Por ejemplo, es muy probable que las dos cadenas New York y new york se refieran al mismo concepto y solo tengan diferencias de mayúsculas. Del mismo modo, Gödel y Godel probablemente se refiera a la misma persona. La agrupación en clústeres es una herramienta muy poderosa para limpiar conjuntos de datos que contienen entradas mal tipeadas o mal escritas. OpenRefine tiene varios algoritmos de agrupación integrados. Experimente con ellos y aprenda más sobre estos algoritmos y cómo funcionan.

  1. Cree una faceta de texto con la columna village como la que hizo en el paso anterior -panel izquierdo- y haga clic en el botón Cluster / Agrupar.

  2. En la ventana emergente resultante, puede cambiar el Metodo y usar el Función. Pruebe diferentes combinaciones para ver qué diferentes fusiones de valores se sugieren.
    Seleccione el método colisón de llaves y la función metaphone3 función. Debe identificar dos grupos.

  3. Haga clic en el cuadro ¿unir? junto a cada grupo, luego haga clic unir y reagrupar.

  4. Intente seleccionar diferente Métodos y Funciones otra vez, para ver qué nuevas fusiones se sugieren.

  5. Debería encontrar que al usar la configuración predeterminada, no se encuentran más clústeres, por ejemplo, para fusionarse Ruaca-Nhamuendacon Ruacao Chirdozocon Chirodzo. (Tenga en cuenta que el método vecino más cercano con ppm de distancia, radius ≥ 4 y block chars ≤ 4 encontrará estos grupos, así como otras configuraciones con levenshtein distancia)

  6. Para fusionar estos valores, pasaremos el cursor sobre ellos en la faceta de texto de la aldea, seleccionaremos editar y cambiaremos manualmente los nombres. Cambiar Chirdozoa Chirodzoy Ruaca-Nhamuendaa Ruaca. Ahora debería tener cuatro clústeres : Chirodzo, God, Ruaca y 49.

Importante: si usa un método o función de teclado diferente, o más veces de las descritas en las instrucciones anteriores, sus soluciones para ejercicios posteriores no serán las mismas que se muestran en esas soluciones de ejercicios.

Diferentes algoritmos de agrupamiento

Los detalles técnicos de cómo funcionan los diferentes algoritmos de agrupamiento se pueden encontrar en el siguiente enlace.

Más sobre agrupamiento/clustering

Breve explicación de cluster: fingerprint

El método fingerprint es el que tiene menos probabilidades de producir falsos positivos.

Este algoritmo trabaja con cadenas (strings) y sigue siempre este proceso, en este orden.

  1. Eliminar los espacios en blanco iniciales y finales

  2. Cambia todos los caracteres a su representación en minúsculas (lowcase)

  3. Elimina todos los caracteres de puntuación y control y
    normaliza los caracteres occidentales extendidos a su representación ASCII (por ejemplo, “gödel” → “godel”)

  4. Divide la cadena en tokens separados por espacios en blanco

  5. Ordenar las fichas y eliminar los duplicados

  6. Unir las fichas de nuevo

Ver el código en java aquí.

Transformando datos

Los datos de la items_ownedcolumna son un conjunto de elementos de una lista. La lista está entre corchetes y cada elemento está entre comillas simples. Antes de dividir la lista en elementos individuales en la siguiente sección, primero queremos eliminar los corchetes y las comillas.

  1. Haga clic en la flecha hacia abajo en la parte superior de la columna items_owned. Elige Edit Cells>Transform…

  2. Esto abrirá una ventana en la que puede escribir una expresión GREL. GREL son las siglas de General Refine Expression Language.

  3. Primero eliminaremos todos los corchetes izquierdos ( [). En el cuadro Expresión, escriba value.replace(“[”, “”)y haga clic en OK.

La sintaxis de GREL es la siguiente: value.replace()
En el paréntesis escriba, en orden, lo que quiere remplazar y luego por el valor que lo quiere remplazar.

En este caso se usará para eliminar símbolos. Es decir, remplazar un símbolo por nada.

value.replace(“[”, “”)

Note que los valores a cambiar se escriben entre comillas. Si no hay nada entre las comillas simplemente se elimina. Puede eliminar así tildes, puntos, comas, dos puntos, etc.

  1. Lo que significa la expresión es esto: Tome el value en cada celda de la columna seleccionada y reemplace todos los “[” con “” (es decir, nada - eliminar).

5.Haga clic en OK. Debería ver que ya en la columna items_owned no hay corchetes izquierdos.

Utilice esta misma estrategia para eliminar las comillas simples ( '), los corchetes derechos ( ]) y los espacios de la columna items_owned.

Ahora que hemos eliminado los caracteres superfluos de nuestra columna items_owned, podemos usar una faceta de texto para ver qué elementos eran de propiedad común o particular de los encuestados.

  1. Haga clic en la flecha hacia abajo en la parte superior de la columna items_owned.
  2. Elige Facet>Custom text facet…
  3. En el cuadro Expression, escriba value.split(“;”).
  4. Haga clic en OK.

Ahora debería ver un nuevo cuadro de faceta de texto en el panel de la izquierda. Alli puede observar la frecuencia de cada palabra.

  1. ¿Cuáles son los dos artículos que más se poseen? ¿Cuáles son los dos menos comunes?

  2. Realice los mismos pasos de limpieza y ajuste de facetas de texto personalizado para la columna months_lack_food. ¿En qué mes(es) era más probable que los agricultores carecieran de alimentos?

  3. Realice los mismos pasos de limpieza para las columnas months_no_water, liv_owned, res_changey . no_food_mitigation

Sugerencia: para reutilizar un comando GREL, haga clic en la pestaña History y luego haga clic Reuse junto al comando que le gustaría aplicar a esa columna

Uso de deshacer y rehacer.

Al explorar y limpiar un conjunto de datos, es común descubrir después de realizar un cambio que realmente debería haber hecho otra cosa primero. OpenRefine proporciona operaciones Undopara Redohacerlo fácil.

Ejercicio

  1. Haga clic donde dice Undo / Redoen el lado izquierdo de la pantalla. Todos los cambios que ha realizado hasta ahora se enumeran aquí.

  2. Haga clic en el paso al que desea volver; en este caso, retroceda varios pasos antes de realizar cualquier transformación de texto.

  3. Confirme visualmente que esas columnas ahora contienen los caracteres especiales que habíamos eliminado anteriormente.

  4. Tenga en cuenta que aún puede hacer clic en rehacer los pasos posteriores. Antes de pasar a la siguiente lección, vuelva a realizar todos los pasos de su análisis para que todas las columnas que modificó no tengan corchetes, espacios ni comillas simples.

Puntos Claves

OpenRefine puede importar una variedad de tipos de archivos.

OpenRefine se puede usar para explorar datos usando filtros.

La agrupación en clústeres en OpenRefine puede ayudar a identificar diferentes valores que pueden significar lo mismo.

OpenRefine puede transformar los valores de una columna.